package com.szsh.aiot.hsm.service;

import com.szsh.aiot.common.core.domain.AjaxResult;

import java.util.List;

/**
 * @Description:摄像头访问提醒
 * @Date 2023/8/25: 14:15
 * @Author: LOADING>>>>>
 */

public interface CameraAccessService {

    /**
     * 摄像头访问提醒：根据宽带账号获取用户已选择摄像头列表及其异常登录信息
     *
     * @param broadbandNO
     * @param gatewayMac
     * @param pushReason
     * @return
     */

    AjaxResult  getCameraAbnormal(String broadbandNO, String gatewayMac, String pushReason);

    /**
     * 摄像头访问提醒：查询摄像头访问提醒设置
     *
     * @param broadbandNO
     * @return
     */
    AjaxResult queryRemindSetting(String broadbandNO);
    /**
     * 摄像头访问提醒：更新摄像头访问提醒设置
     * @param broadbandNO
     * @param setting
     * @return
     */
    AjaxResult updateRemindSetting(String broadbandNO, Integer setting);
    /**
     * 摄像头访问提醒：获取用户待选设备列表
     *
     * @param broadbandNO
     *            宽带账号
     * @param gatewayMac
     *            网关mac
     * @return 设备列表List<Device>
     */
    AjaxResult getDeviceList(String broadbandNO, String gatewayMac);
    /**
     * 摄像头访问提醒：保存用户自定义设备列表
     *
     * @param deviceIdList
     *            设备ID列表
     * @param broadbandNO
     *            宽带账号
     * @return CameraDeviceResponse
     */
    AjaxResult saveDeviceInfo(List<String> deviceIdList, String broadbandNO);
    /**
     * 摄像头访问提醒： 一键保护 一键恢复
     *
     * @paran gateMAC
     * @param deviceMac
     * @param deviceName
     * @param buttonFlag
     * @return
     */
    AjaxResult setAttachDevice(String gateMac, String deviceMac, String deviceName,
                           String buttonFlag);

    /**
     * 智能设备流量监控：获取当前默认监控设备列表
     *
     * @param broadbandNO
     * @param gatewayMac
     * @return
     */
    AjaxResult getFlowDevice(String broadbandNO, String gatewayMac);
    /**
     * 获取设备流量数据
     *
     * @param deviceid
     * @return
     */
    AjaxResult  getFlowPushData(String deviceid);

    /**
     * 获取用户所有设备列表
     *
     * @param broadbandNO
     * @param gatewayMac
     * @return
     */
    AjaxResult getOnlineDeviceList(String broadbandNO, String gatewayMac);

    /**
     * 设置自定义列表
     *
     * @param broadbandNO
     * @param deviceidList
     * @return
     */
    AjaxResult setUpFlowDevice(String broadbandNO, List<String> deviceidList);
}
